package com.learn.use.myreconsituteproject.util;

import android.content.Context;
import android.content.SharedPreferences;


import com.alibaba.fastjson.JSON;

import java.util.List;

import static android.content.Context.MODE_PRIVATE;

/**
 * SharedPreferences的工具类
 *2016-8-16  上午10:46:55
 */
public class SharedPreferencesUtil {

	private static SharedPreferences sp;

	/**
	 * 保存boolean信息的操作
	 * 2016-8-16 上午10:47:26
	 */
	public static void saveBoolean(Context context, String key, boolean value){
		if (sp == null) {
			sp = context.getSharedPreferences("config", MODE_PRIVATE);
		}
		//保存数据
		sp.edit().putBoolean(key, value).commit();
	}
	
	/**
	 * 获取boolean信息的操作
	 * 2016-8-16 上午10:47:26
	 */
	public static boolean getBoolean(Context context, String key, boolean defValue){
		if (sp == null) {
			sp = context.getSharedPreferences("config", MODE_PRIVATE);
		}
		return sp.getBoolean(key, defValue);
	}
	
	
	
	/**
	 * 保存String信息的操作
	 * 2016-8-16 上午10:47:26
	 */

	public static void saveString(Context context, String key, String value){
		if (sp == null) {
			sp = context.getSharedPreferences("config", MODE_PRIVATE);
		}
		//保存数据
		sp.edit().putString(key, value).commit();
	}


	/**
	 * 获取String信息的操作
	 * 2016-8-16 上午10:47:26
	 */
	public static String getString(Context context, String key, String defValue){
		if (sp == null) {
			sp = context.getSharedPreferences("config", MODE_PRIVATE);
		}
		return sp.getString(key, defValue);
	}


	public static <T> void saveDataList(Context context, String tag, List<T> datalist) {
		if (null == datalist || datalist.size() <= 0)
			return;

		if (sp == null) {
			sp = context.getSharedPreferences("config", MODE_PRIVATE);
		}

		//转换成json数据，再保存
		String strJson = JSON.toJSONString(datalist);
        SharedPreferences.Editor edit = sp.edit();
        edit.clear();
        edit.putString(tag, strJson);
        edit.commit();

	}

	/**
	 * 获取lIst
	 * @param tag
	 * @return
	 */
	public static String getDataList(Context context, String tag, String defValue) {
//		List<T> datalist=new ArrayList<T>();
        if (sp == null) {
            sp = context.getSharedPreferences("config", MODE_PRIVATE);
        }
		String strJson = sp.getString(tag, defValue);
		/*if (null == strJson) {
			return datalist;
		}
		Gson gson = new Gson();
		datalist = gson.fromJson(strJson, new TypeToken<List<T>>() {
		}.getType());*/
		return strJson;

	}



	
	/*
	* 删除数据
	* */

	public static  void DeleteData(Context context) {

		sp=context.getSharedPreferences("config", MODE_PRIVATE);
		if(sp!=null){
			sp.edit().clear().commit();
		}

	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}
